// 对服务器端数据API进行二次封装
// 服务器端接口基础地址

export let base = `https://web.codeboy.com/music`

/*post请求的公共选项 */
let postOptions = {
	methods: 'POST',
	header: {
		'Content-Type': 'application/x-www-form-urlencoded'
	}
}

/**
 * 用户信息查询
 * 接口地址：/user/detail
 * 请求方式：GET
 * 必选参数 : uid : 用户 id
 * 请求示例：/user/detail?uid=32953014
 */
export let userDetail = async (uid) => {
	// 1.显示加载中提示框
	uni.showLoading({
		title: '信息加载中'
	})
	// 2.异步请求服务器端接口数据
	let url = base + `/user/detail?uid=${uid}`
	let [err, res] = await uni.request({
		url,
	})
	// 3.隐藏加载中提示框
	uni.hideLoading()
	return res.data
}

/**
 * 首页-发现
说明 : 调用此接口 , 可获取 APP 首页信息
接口地址 : /homepage/block/page
 */
export let homePage = async ()=>{
	uni.showLoading({
		title: '首页数据加载中'
	})
	
	let url = base+'/homepage/block/page'
	let [err, res] = await uni.request({
		url,
	})
	
	uni.hideLoading()
	return res.data.data.blocks
}
// 歌手分类列表
// 接口地址 : /artist/list
// 调用例子 : /artist/list?type=1&area=96
export let artistList = async (type=-1,area=-1,offset=0) => {
	// 1.显示加载中提示框
	uni.showLoading({
		title: '信息加载中'
	})

	// 2.异步请求服务器端接口数据
	let url = base + `/artist/list?type=${type}&area=${area}&offset=${offset}`
	let [err, res] = await uni.request({
		url
	})

	// 3.隐藏加载中提示框
	uni.hideLoading()
	return res.data
}

/**
 * 推荐歌单
说明 : 调用此接口 , 可获取推荐歌单
可选参数 : limit: 取出数量 , 默认为 30 (不支持 offset)
接口地址 : /personalized
调用例子 : /personalized?limit=1
 */
export let personalized = async ()=>{
	let url = base + '/personalized'
	let [err, res] = await uni.request({
		url
	})
	
	return res.data.result

}

/**
 * 推荐新音乐
说明 : 调用此接口 , 可获取推荐新音乐
可选参数 : limit: 取出数量 , 默认为 10 (不支持 offset)
接口地址 : /personalized/newsong
调用例子 : /personalized/newsong
 */
export let personalizedNewsong = async ()=>{
	let url = base + '/personalized/newsong'
	let [err, res] = await uni.request({
		url
	})
	
	return res.data.result

}
// 歌手热门 50 首歌曲
// 说明 : 调用此接口,可获取歌手热门 50 首歌曲
// 必选参数 :
// id : 歌手 id
// 接口地址 : /artist/top/song
// 调用例子 : /artist/top/song?id=6452
export let artistTop=async(id=1)=>{
	uni.showLoading({
		title:'歌手信息加载中'
	})
	let [err,res]=await uni.request({
		url:base+`/artist/top/song?id=${id}`
	})
	uni.hideLoading()
	return res.data
}

/**
 * 热门歌手
说明 : 调用此接口 , 可获取热门歌手数据
可选参数 : limit: 取出数量 , 默认为 50
offset: 偏移数量 , 用于分页 , 如 :( 页数 -1)*50, 其中 50 为 limit 的值 , 默认 为 0
接口地址 : /top/artists
调用例子 : /top/artists?offset=0&limit=30
 */
export let topArtists = async ()=>{
	uni.showLoading({
		title: '数据加载中'
	})
	let url = base + '/top/artists'
	let [err, res] = await uni.request({
		url
	})
	
	uni.hideLoading()
	return res.data.artists
}


/**
 * 热搜列表(简略)
说明 : 调用此接口,可获取热门搜索列表
接口地址 : /search/hot
调用例子 : /search/hot
 */

export let searchHot = async ()=>{
	uni.showLoading({
		title: '数据加载中'
	})
	let url = base + '/search/hot'
	let [err, res] = await uni.request({
		url
	})
	uni.hideLoading()
	
	return res.data.result.hots
}

/**
 * 热搜列表(详细)
说明 : 调用此接口,可获取热门搜索列表
接口地址 : /search/hot/detail
调用例子 : c
 */
export let hotDetail = async ()=>{
	uni.showLoading({
		title:'数据加载中'
	})
	let url = base + '/search/hot/detail'
	let [err, res] = await uni.request({
		url
	})
	uni.hideLoading()
	return res.data.data
}
// 获取歌手详情
// 说明 : 调用此接口 , 传入歌手 id, 可获得获取歌手详情
// 必选参数 : id: 歌手 id
// 接口地址 : /artist/detail
// 调用例子 : /artist/detail?id=11972054 (Billie Eilish)
export let artistDetail=async(id=6452)=>{
	uni.showLoading({
		title:'歌手信息加载中'
	})
	let [err,res]=await uni.request({
		url:base+`/artist/detail?id=${id}`
	})
	uni.hideLoading()
	return res.data
}